﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Timers;

namespace LectorHuellaC
{
    public partial class RegistrarCodigoTeclado : Form
    {

       
        System.Timers.Timer aTimer = new System.Timers.Timer();
        int tiempoingresodatos = 0;
        string id_empleado;
        String versionapp = "A 1.0";
        string tipocodigo = "";
        string id_empresa = Settings1.Default.id_empresa.ToString();
        string IdSucursal = Settings1.Default.IdSucursal;

        public void enviarIdUsuario(string Id_user)
        {
            this.id_empleado = Id_user;
            this.Text = ":: Reloj Checador :: " + versionapp + " (" + this.Text + ")";
        }

        string statusConection;

        public void tipoConexion(String conection)
        {
            statusConection = conection;
            label4.Text = statusConection;
        }


        public RegistrarCodigoTeclado()
        {
            InitializeComponent();
            aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
            aTimer.Interval = 500;
            //aTimer.Enabled = true;
            tipocodigo = tipoCodigo();
            Control.CheckForIllegalCrossThreadCalls=false;
            if (tipocodigo.Equals("TAR"))
            {
                lblscaner.Visible = true;
                txbverificar.Visible = false;
                lblrecodigo.Visible = false;
                gbteclado.Text = "Codigo de barras";
                btnGuardar.Visible = false;
                lblscaner.Text = "Pase el codigo por el scaner";
            }
        }

        private void OnTimedEvent(object source, ElapsedEventArgs e)
        {
            if (tipocodigo.Equals("TAR"))
            {
                tiempoingresodatos++;
            }

           
            string val=txbCodigo.Text;

            if (val.Length >= 13)
            {

                aTimer.Stop();
                txbCodigo.Enabled = false;
                bool resp = verificarCodigo();

                if (!resp)
                {
                    MessageBox.Show("El codigo existe favor de cambiarlo", "Validacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                    txbCodigo.Enabled = true;
                    return;
                }

                ConectaBD conBD = new ConectaBD();
                string sentencia = "update reloj_empleados set claveentrada='" + txbCodigo.Text + "' "
                +" where id_empleado='" + this.id_empleado + "' and id_empresa='" + id_empresa + "' ";

                bool correcto = conBD.InsertUpdate(sentencia);
                if (correcto)
                {
                    MessageBox.Show("Codigo actualizado", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                }
                else
                {
                    MessageBox.Show("Error de actualizacion", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                }
                txbCodigo.Text = "";
                txbCodigo.Enabled = true;

            }
            else
            {
                txbCodigo.Text = "";
            }

        }

        public void borrarValorestxbx()
        {
           
                txbCodigo.Text = "";
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }

        private void btnGuardar_Click_1(object sender, EventArgs e)
        {
             if (txbCodigo.Text.Equals(txbverificar.Text) && !txbCodigo.Text.Equals("") && !txbverificar.Text.Equals(""))
            {
                string id_empresa = Settings1.Default.id_empresa.ToString();
                string IdSucursal = Settings1.Default.IdSucursal;

                bool resp=verificarCodigo();

                if (!resp)
                {
                    MessageBox.Show("El codigo existe favor de cambiarlo", "Validacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                    return;
                }
               
                ConectaBD conBD = new ConectaBD();
                string sentencia = "update reloj_empleados set claveentrada='" + txbCodigo.Text + "' " 
                    +" where id_empleado='" + this.id_empleado + "' and id_empresa='" + id_empresa + "' ";

                bool correcto = conBD.InsertUpdate(sentencia);
                if (correcto)
                {
                    MessageBox.Show("Codigo actualizado", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                }
                else
                {
                    MessageBox.Show("Error de actualizacion", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txbCodigo.Text = "";
                    txbverificar.Text = "";
                }
             }
             else{
                 MessageBox.Show("Por favor verifique los codigos coincidan", "Validacion", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 txbCodigo.Text = "";
                 txbverificar.Text = "";
             }
        }

        public bool verificarCodigo()
        {
            bool resp=false;
            ConectaBD conBD = new ConectaBD();
            String sentencia = "Select Nombre, id_empleado from reloj_empleados "
                + "where ClaveEntrada = '" + txbCodigo.Text + "' and id_empresa='" + id_empresa + "' ";
            DataSet ds = new DataSet();
            ds = conBD.Consulta(sentencia);
            if (ds.Tables["Resultado"].Rows.Count == 0)
            {
                resp = true;
            }
            return resp;
        }

        public void limpiar()
        {
            txbCodigo.Text = "";
            txbverificar.Text = "";
        }

        public string tipoCodigo()
        {
            
            string tipo_codigo = "";
            ConectaBD conBD = new ConectaBD();
            String sentencia = "select op.`OpcionAcceso` from reloj_opcionesacceso op where "
                    + " op.`id_empresa`='" + id_empresa + "' and op.`IdSucursal`='" + IdSucursal + "' ";
            DataSet ds = new DataSet();
            ds = conBD.Consulta(sentencia);

            tipo_codigo=ds.Tables[0].Rows[0]["OpcionAcceso"].ToString();
            return tipo_codigo;
        }

        private void txbCodigo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (tipocodigo.Equals("TAR"))
            {
                aTimer.Enabled = true;
            }
        }


    }

}
